#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 10002;

struct Node{
    int l,r,h;
    Node(){}
    Node(int l_,int r_,int h_):l{l_},r{r_},h{h_}{}
    bool operator<(const Node& node)const{
        return l<node.l;
    }
};
Node nodes[N/2];
int pos[N];
int mh[N];
int l,h0,r;

int main(){
    memset(mh,0,sizeof(mh));
    set<int> mys;
    int i=0;
    while(cin>>l>>h0>>r){
        mys.insert(l);
        mys.insert(r);
        nodes[i++] = Node(l,r,h0);
    }
    int n=i;
    int j=0;
    for(auto p=mys.begin();p!=mys.end();p++){
        pos[j] = *p;
        ++j;
    }
    int m=j;
    for(int i=0;i<n;i++){
        int l = nodes[i].l;
        int r = nodes[i].r;
        for(int j=0;pos[j]<r;j++){
            if(pos[j]>=l&&pos[j]<r){
                mh[j] = max(mh[j],nodes[i].h);
            }
        }
    }
    cout<<pos[0]<<' '<<mh[0]<<' ';
    for(int i=1;i<m;i++){
        if(mh[i]!=mh[i-1]) cout<<pos[i]<<' '<<mh[i]<<' ';
    }
    return 0;
}